自定义入库内容

public function ruku($data) {
        
        $characters = 'abcdefghijklmnopqrstuvwxyz';
        $shuffledCharacters = str_shuffle($characters);
        $fcaiji = substr($shuffledCharacters, 0, 4);
        
        $data['fcaiji']=$fcaiji;    
        
        $mod = $data['mod'];
         if (!$data['title']||!$data['content']) {
         
                
                return  dr_return_data("0","失败");
                
                
            }
        
        if(!$mod){
          return  dr_return_data("0","请设置发布模块");
        }
        
         \Phpcmf\Service::C()->_module_init($mod); // news 是模块目录
        
    
        
            // 发布者id 1
            $data['uid'] = 1;
        
            // 发布者笔名 admin
            $data['author'] = 'admin';
        
            // 主表字段
            $fields[1] =  \Phpcmf\Service::C()->get_cache('table-'.SITE_ID,  \Phpcmf\Service::C()->content_model->dbprefix(SITE_ID.'_'.MOD_DIR));
            $cache = \Phpcmf\Service::C()->get_cache('table-'.SITE_ID, \Phpcmf\Service::C()->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data'));
            $cache && $fields[1] = array_merge($fields[1], $cache);
        
            // 附表字段
            $fields[0] =  \Phpcmf\Service::C()->get_cache('table-'.SITE_ID,  \Phpcmf\Service::C()->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_data_0'));
        
            // 去重复
            $fields[0] = array_unique($fields[0]);
            $fields[1] = array_unique($fields[1]);
            
            // 格式化入库字
            // 开始归类存储
        
            $save = [];
        
            // 主表附表归类
            foreach ($fields as $ismain => $field) {
                foreach ($field as $name) {
                    isset($data[$name]) && $save[$ismain][$name] = $data[$name];
                }
            }
            if (!$data['catid']) {
         
      
                return  dr_return_data("0","栏目为空");
            }
        
            $save[1]['uid'] = $save[0]['uid'] = $data['uid'];
            $save[1]['catid'] = $save[0]['catid'] = $data['catid'];
        
            $save[1]['url'] = ''; // 地址留空,系统会自动生成
            $save[1]['status'] = 9; //9表示正常发布,1表示审核里面
            $save[1]['hits'] = 0; // 阅读数
            $save[1]['displayorder'] = 0; // 排序权重值,默认填写0
            $save[1]['link_id'] = 0; // 填写0不管他
            $save[1]['inputtime'] = SYS_TIME; // 发布时间设置成为当前时间
            $save[1]['updatetime'] = SYS_TIME; // 更新时间也设置成为当前时间,关于时间采集如果是这种格式2022-12-12xx,那么需要使用strtotime函数转换成时间戳入库
            $save[1]['inputip'] = '127.0.0.1'; // 发布者ip地址
            
            
              
      
            
            $save[1]['keywords'] = dr_get_keywords( $save[1]['title']); // 按插件提取关键词
      
            
            $save[1]['description'] = dr_get_description( $save[0]['content'], 100); // 在内容里面提取100个子作为描述
        
        
    
            // 验证标题重复
            if (\Phpcmf\Service::C()->content_model->table(SITE_ID.'_'.MOD_DIR)->where('md', $save[1]['md'])->counts()) {
         
                
                
                return  dr_return_data("0","标题重复");
                
                
            }
        
            $rt = \Phpcmf\Service::C()->content_model->save_content(0, $save);
             
        
            if ($rt['code']) {
                /*
                // 用于发布成功后生成静态文件代码
                //dr_html_auth($_SERVER['SERVER_ADDR']);
                //dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['id']);
                $atcode = 'chtml_'.SITE_ID.'_'.MOD_DIR.'_'.$rt['code'];
                \Phpcmf\Service::L('cache')->set_auth_data($atcode, $rt['code'], SITE_ID);
                dr_catcher_data(SITE_URL.'index.php?s='.MOD_DIR.'&c=html&m=showfile&id='.$rt['code'].'&atcode='.$atcode);
        $save[1]['id'] = $save[0]['id'] = $rt['code'];
        \Phpcmf\Service::L('router')->show_url(\Phpcmf\Service::C()->module, $save[1]);
                */
                
            } 
            
            return $rt;
        
    
      
    }


支付中出现AppID和AppSecret值为空的解决方法

关于第二个BUG,我看了源码发现就算是官方开发的微信支付和和支付宝支付也有可能会出先这个BUG

已经定位到BUG位置 在/dayrui/Fcms/Core/PHPcmf.php  296行

elseif (dr_is_app('httpapi') && \Phpcmf\Service::L('input')->request('appid')) {
            define('IS_API_HTTP', 1);
            \Phpcmf\Service::M('http', 'httpapi')->check_auth();
        }

request 改成get 即可避免此BUG,请官方参考下 需要修改不,谢谢!

因为我的支付返回数据的POST请求中会携带这个参数,导致这个错误!

nginx宝塔面板如何屏蔽垃圾蜘蛛禁止抓取不影响火车头发布

最近查看服务器日志,发现一些垃圾蜘蛛,一直爬行很多,比如以下这些垃圾,太烦人了,就想着如何屏蔽这些垃圾蜘蛛,但是想着不影响火车头的发布。查了一些资料,下面把技巧分享给大家。

网上找到的代码如下:目前为止比较好用。

if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) {
     return 444;}


迅睿联动插件当前位置带链接

1、把下面的代码放到config/coustom.php

   function my_linkagepos($mod,$code, $id, $symbol = ' > ', $link = 'ii') { 
     if (!$code || !$id) {
        return '';
    }
    $url = $url ? urldecode($url) : '';
    $data = dr_linkage($code, $id, 0);
    if (!$data) {
        return '';
    }
    $name = [];
    $array = explode(',', $data['pids']);
    $array[] = $data['ii'];
    foreach ($array as $ii) {
        if ($ii) {
            $data = dr_linkage($code, $ii, 0);
            
               $linkurl= \Phpcmf\Service::L('Router')->search_url(null, $code, $data[$link],$mod);
           
                $name[] = '<a href="'.$linkurl.'">'.$data['name'].'</a>';
            
        }
    }
    return implode($symbol, array_unique($name));
  }

2、调用方法

{my_linkagepos('gongju','gjfl', $gjfl, '/', 'ii')}
{my_linkagepos('gongju','gjfl', $gjfl, '/', 'id')}